package com.info.zhiduoduo.repository.entity.entrustmentproject;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author bob
 * @since 2021-08-22
 */
@Data
@Accessors(chain = true)
@TableName("zdd_entrustment_project_item")
public class EntrustmentProjectItem extends Model<EntrustmentProjectItem> {

    private static final long serialVersionUID = 1L;

    /**
     * 项目id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 企业id
     */
    private Integer compid;
    /**
     * 企业名称
     */
    private String compname;
    /**
     * 批量导入id
     */
    @TableField("import_id")
    private Integer importId;
    /**
     * 委托方主体id
     */
    @TableField("principal_id")
    private Integer principalId;
    /**
     * 受托方id, 即创客id
     */
    @TableField("entrustee_id")
    private Integer entrusteeId;
    /**
     * 受托方工作室全称
     */
    @TableField("entrustee_studio")
    private String entrusteeStudio;
    /**
     * 受托方姓名
     */
    @TableField("entrustee_name")
    private String entrusteeName;
    /**
     * 受托方身份证号
     */
    @TableField(exist = false)
    private String entrusteeIdno;
    /**
     * 自然人id, 收款方
     */
    private Integer crowdsourceid;
    /**
     * 自然人姓名
     */
    @TableField("crowdsource_name")
    private String crowdsourceName;
    /**
     * 导入时的序号
     */
    private Integer index;
    /**
     * 项目名
     */
    private String name;
    /**
     * 项目内容
     */
    private String content;
    /**
     * 项目类型 5:委托接单- 项目 6:委托接单-智众包项目 参考 ProjectType枚举类
     */
    @TableField("project_type")
    private Integer projectType;
    /**
     * 项目金额(导入时的金额),单位元
     */
    @TableField("project_amount")
    private BigDecimal projectAmount;
    /**
     * 实发金额,单位元
     */
    private BigDecimal amount;
    /**
     * 基础服务费率, 委托接单项目只有服务费率
     */
    @TableField("service_rate")
    private Double serviceRate;
    /**
     * 合伙人项目服务费分润费率
     */
    @TableField("partner_project_service_rate")
    private Double partnerProjectServiceRate;
    /**
     * 服务费 = 基础服务费 + 合伙人项目服务费
     */
    @TableField("service_charge")
    private BigDecimal serviceCharge;
    /**
     * 税率, 创客团项目独有
     */
    @TableField("tax_rate")
    private Double taxRate;
    /**
     * 基础税费,创客团项目独有
     */
    @TableField("tax_fee")
    private BigDecimal taxFee;
    /**
     * 服务费+税费,单位元
     */
    @TableField("service_tax_amount")
    private BigDecimal serviceTaxAmount;
    /**
     * 含税金额(实发金额+服务费+税费),单位元
     */
    @TableField("tax_inclusive_amount")
    private BigDecimal taxInclusiveAmount;
    /**
     * 创客团-智众包项目,合伙人智众包佣金比例, 其他项目无
     */
    @TableField("partner_brokerage_rate")
    private Double partnerBrokerageRate;
    /**
     * 创客团-智众包项目,合伙人智众包佣金, 其他项目无
     */
    @TableField("partner_brokerage")
    private BigDecimal partnerBrokerage;
    /**
     * 创客团-智众包项目保证金金额,其他项目无保证金
     */
    @TableField("deposit_amount")
    private BigDecimal depositAmount;
    /**
     * 开票金额(创客团智众包=含税金额-保证金金额, 其他=含税金额)
     */
    @TableField("invoice_amount")
    private BigDecimal invoiceAmount;
    /**
     * 企业应付金额(创客团智众包=含税金额+保证金金额, 其他=含税金额)
     */
    @TableField("company_pay_amount")
    private BigDecimal companyPayAmount;
    /**
     * 项目分类id
     */
    private Integer categoryid;
    /**
     * 发票类型 1:普票 2:专票
     */
    @TableField("invoice_type")
    private Integer invoiceType;
    /**
     * 发票内容
     */
    @TableField("invoice_content")
    private String invoiceContent;
    /**
     * 收款方姓名
     */
    @TableField("payee_name")
    private String payeeName;
    /**
     * 收款方手机号
     */
    private String phone;
    /**
     * 收款方身份证号
     */
    @TableField("payee_id_no")
    private String payeeIdNo;
    /**
     * 收款账号类型 1:支付宝账号 2:银行卡
     */
    @TableField("account_type")
    private Integer accountType;
    /**
     * 收款账号 支付宝账号或者银行卡号
     */
    @TableField("account_no")
    private String accountNo;
    /**
     * 自然人绑定企业id
     */
    private Integer bindcompid;
    /**
     * 自然人绑定企业名
     */
    private String bindcompname;
    /**
     * 项目状态 1:已创建 2:已分配(受托人创客) 3:支付完成 4:支付失败
     */
    private Integer state;
    /**
     * 项目委托状态 1:已创建 2:已分配受托人 3:已转账给受托人 4:受托人收到资金 5:受托人支付成功
     */
    @TableField("entrust_state")
    private Integer entrustState;
    /**
     * 支付宝报错code
     */
    @TableField("alipay_error_code")
    private String alipayErrorCode;
    /**
     * 支付宝报错msg
     */
    @TableField("alipay_error_msg")
    private String alipayErrorMsg;
    /**
     * 委托人转账给受托人的订单编号
     */
    @TableField("transfer_no")
    private String transferNo;
    /**
     * 受托人代付给自然人的订单编号
     */
    @TableField("pay_no")
    private String payNo;
    /**
     * 分配受托人(创客),即项目发布的时间
     */
    @TableField("dispatch_time")
    private Date dispatchTime;
    /**
     * 委托人转账给受托人的时间
     */
    @TableField("transfer_time")
    private Date transferTime;
    /**
     * 受托人收到资金的时间
     */
    @TableField("receive_time")
    private Date receiveTime;
    /**
     * 受托人发起支付的时间
     */
    @TableField("pay_time")
    private Date payTime;
    /**
     * 受托人支付成功,项目结束时间
     */
    @TableField("finish_time")
    private Date finishTime;
    private Date createtime;
    private Date updatetime;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
